Storage system and management method therefor

ABSTRACT

A storage system comprises multiple first storage apparatuses, and a controller which provides a first logical volume corresponding to a storage area of the multiple first storage apparatuses to a host computer. The controller partitions a storage area corresponding to the first logical volume into multiple first physical storage areas, manages the partitioned multiple first physical storage areas as physical storage areas of a storage pool, creates a first virtual volume which is provided to the host computer, and associates, from among the multiple first physical storage areas, a physical storage area in which user data is stored, with the first virtual volume.

TECHNICAL FIELD

The present invention relates to technology for managing a storagesystem that provides a virtual volume.

BACKGROUND ART

A storage system provides a logical volume, which is a logical storagearea, to a higher-level apparatus, such as a host computer. In additionto a normal volume to which a storage system physical storage area ofthe same capacity as the logical volume is allocated beforehand, thelogical volume includes a Thin provisioning volume to which a physicalstorage area of the required capacity is dynamically allocated to thelogical volume when a write has been performed. In a Thin provisioningvolume, a large capacity virtual volume is provided to the hostcomputer, and when a write request has been received from the hostcomputer, a physical storage area inside the storage system is allocatedonly to the area corresponding to the write. Therefore, compared to thenormal volume, the Thin provisioning volume makes it possible to reducethe physical storage area used by the storage system, and, in turn, togreatly reduce costs.

Patent Literature 1 discloses technology for migrating normal volumedata to a Thin provisioning volume. In accordance with this, the storagesystem exercises control such that a physical storage area inside thestorage system is allocated once to the entire area of themigration-destination Thin provisioning volume, and thereafter, aphysical storage area inside the storage system is allocated only to thearea in which the user data is stored, thereby reducing physical storagearea consumption and enabling the effective use of the physical storagearea.

CITATION LIST Patent Literature

PTL 1: Japanese Patent Application Laid-open No. 2010-86394

SUMMARY OF INVENTION Technical Problem

In Patent Literature 1, migrating data stored in the normal volume tothe Thin provisioning volume makes it possible to eliminate theallocation of a physical storage area to an area in which user data isnot stored. However, on the other hand, the load placed on the storagesystem by the migration process can lead to a drop in storage system I/Operformance.

Solution to Problem

In the present invention, a storage system comprises multiple firststorage devices, and a controller which provides a first logical volumecorresponding to the storage area of the multiple first storage devicesto a host computer. The controller partitions the storage areacorresponding to the first logical volume into multiple first physicalstorage areas, manages the partitioned multiple first physical storageareas as physical storage areas of a storage pool, creates a firstvirtual volume, which is provided to the host computer, and associates,from among the multiple first physical storage areas, a physical storagearea in which user data is stored, with the first virtual volume.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 shows an overview of Example 1.

FIG. 2 shows the configuration of a storage system 100 related toExample 1.

FIG. 3 shows the storage hierarchy of the storage system 100.

FIG. 4 shows an example of the allocation of a real page to a virtualpage.

FIG. 5 shows an example of the allocation of a real page from a pool toa TPVOL.

FIG. 6 shows the tables and computer programs stored in a SM10301.

FIG. 7 shows the configuration of a TPVOL configuration table 601.

FIG. 8 shows the configuration of a VP configuration table 603.

FIG. 9 shows the configuration of a pool VOL configuration table 605.

FIG. 10 shows the configuration of a RP configuration table 607.

FIG. 11 shows the configuration of a TD configuration table 609.

FIG. 12 is a flowchart of a data write process.

FIG. 13 is a flowchart of pool operation processes.

FIG. 14A shows an example of the state prior to the conversion from atarget internal VOL to a TPVOL. FIG. 14B shows a portion of theconversion process from the target internal VOL to the TPVOL. FIG. 14Cshows the remainder of the conversion process from the target internalVOL to the TPVOL.

FIG. 15 is a flowchart of the processing up to the state in which thetarget internal VOL is accessible from the host 10 as the TPVOL.

FIG. 16 is a diagram illustrating S1502 of FIG. 15.

FIG. 17 is the first part of a flowchart of S1501 of FIG. 15.

FIG. 18 is the second part of the flowchart of S1501 of FIG. 15.

FIG. 19 is the third part of the flowchart of S1501 of FIG. 15.

FIG. 20 is the remainder of the flowchart of S1501 of FIG. 15.

FIG. 21 shows an example of the updating of the RP configuration table.

FIG. 22 is a variation of the processing shown in FIG. 19.

FIG. 23 is a variation of the processing shown in FIG. 20.

FIG. 24A is diagram for illustrating a registration to the pool VOLconfiguration table with respect to the variation. FIG. 24B is diagramfor illustrating a registration to a TP address table with respect tothe variation.

FIG. 25 shows an example of the allocation of a real page inside atarget pool VOL to a TPVOL with respect to the variation.

FIG. 26A shows an example of the state prior to the conversion from atarget externally-coupled VOL to a TPVOL. FIG. 26B shows a portion ofthe conversion process from the target externally-coupled VOL to theTPVOL. FIG. 26C shows the remainder of the conversion process from thetarget externally-coupled VOL to the TPVOL.

FIG. 27A shows a migration of data from a target pool VOL (targetexternally-coupled VOL) to another pool VOL (internal VOL). FIG. 27Bshows the allocation of a migration-destination real page to a virtualpage, and the removal of an external storage 12.

FIG. 28 is a flowchart of a series of processes in which a targetexternally-coupled VOL is regarded as being in a state capable of beingaccessed from the host 10 as the TPVOL, and an external storage isremoved.

FIG. 29 is a diagram illustrating S2802 of FIG. 28.

FIG. 30 is a diagram for illustrating a rebalance function.

FIG. 31 is a diagram for illustrating a reallocation function.

FIG. 32 is a flowchart of a data write process while converting from thetarget externally-coupled VOL to the TPVOL, and while migrating datafrom the target pool VOL (target externally-coupled VOL) to another poolVOL.

FIG. 33 shows the configuration of a storage system related to Example2.

FIG. 34 shows a decision as to whether or not performance is prioritizedin Example 1.

DESCRIPTION OF EMBODIMENTS

A number of examples of the present invention will be explained below.

Furthermore, in the following explanation, various types of informationmay be explained using the expression “xxx table”, but the variousinformation may also be expressed using a data structure other than atable. To show that the various information is not dependent on the datastructure, “xxx table” can be called “xxx information”.

Also, in the following explanation, there may be cases where processingis explained having a “program” as the doer of the action, but since thestipulated processing is performed in accordance with a program beingexecuted by a processor (for example, a CPU (Central Processing Unit))while using a storage resource (for example, a memory) and/or acommunication interface device (for example, a communication port) asneeded, the processor may also be regarded as the doer of theprocessing. A process, which is explained using the program as the doerof the action, may be regarded as a process performed by the storagesystem, a controller of the storage system, a below-described MP-PK ofthe controller, or an MP (microprocessor) inside the MP-PK. Furthermore,the processor may comprise a hardware circuit that carries out eitherpart or all of the processing performed by the processor. A computerprogram may be installed in respective computers from a program source.The program source, for example, may be either a program delivery serveror a storage medium.

Also, in the following explanation, a logical volume may be abbreviatedas “VOL”.

Furthermore, in the following explanation, a virtual VOL that conformsto Thin Provisioning may be abbreviated as “TPVOL”. The TPVOL comprisesmultiple virtual pages. The virtual page is a virtual storage area. Areal page is allocated to a write-destination virtual page in accordancewith a write command from a host. A pool, for example, comprisesmultiple pool VOLs, and each pool VOL is partitioned into two or morereal pages. The pool VOL is a normal VOL that is a member of the pool.

“Normal VOL” refers to a type of VOL other than the TPVOL. Typically, anormal VOL is either an internal VOL or an externally-coupled VOL.

The “internal VOL” is a VOL based on a RAID group of the storage system.The RAID group comprises two or more PDEV, and stores data at aprescribed RAID level.

A “PDEV” is a physical storage device. The storage system may compriseat least one of a memory drive (for example, a SSD (Solid State Drive)),which comprises a nonvolatile semiconductor memory (for example, a flashmemory), a HDD (Hard Disk Drive), or another type of drive as the PDEV.At least one type of drive of the memory drive, HDD, and other type ofdrive (for example, a DVD (Digital Versatile Disk) drive) may bemultiple drives with different types of interfaces. The types ofinterfaces may include at least one of a FC (Fibre Channel), SAS (SerialAttached SCSI), and SATA (Serial ATA).

The “externally-coupled VOL” is a virtual VOL mapped to an external VOL.

An “external VOL” is a VOL of a storage system external to the storagesystem. This VOL may be a TPVOL or a normal VOL.

Also, in the following explanation, when giving an explanation thatdistinguishes between multiple units of the same element, anidentification number for this element may be used instead of theelement's reference sign.

Example 1

FIG. 1 shows an overview of Example 1.

A host apparatus (hereinafter, host) 10 is coupled to a storage system100. There may be one or multiple hosts 10. The storage system 100comprises a pool 300, which is partitioned into multiple real pages, andprovides the host 10 with a TPVOL 220.

The TPVOL 220 comprises multiple virtual pages 222. The TPVOL 220 isrecognized by the host 10 as a logical volume. The host 10 sends an I/Orequest (a write request or a read request) that specifies the TPVOL220. When a real page has not been allocated to a write-destinationvirtual page 222 to which a write-destination address, which isspecified in the write request sent from the host 10, belongs, anallocatable real page (typically, a real page that is not allocated toany virtual page) is allocated from the pool 300 by the storage system100.

There may be a case where it is desirable to provide data in a normalVOL 210 to the host 10 as the TPVOL 220. A conceivable method forrealizing this case is one that migrates data from the normal VOL 210 tothe TPVOL 220, and provides the TPVOL 220, to which the data has beenmigrated, to the host 10. However, this method poses the following twoproblems.

(1) The free capacity of the pool 300 must be the same as the capacityof the normal VOL. This is because the migration of data from the startto the end of the normal VOL will be performed regardless of whether ornot there is any free space in the normal VOL, and so real pages areallocated to the entire area of the TPVOL.

(2) There is a drop in performance in the I/O processing (theinput/output of data to/from the logical volume) carried out by thestorage system 100. This is because the migration places a load on thestorage system 100.

Consequently, in this example, the data inside the normal VOL can beprovided to the host 10 as the data inside the TPVOL without migratingthe data from the normal VOL to the TPVOL. An overview of one method forrealizing this is as follows.

(A) The normal VOL (hereinafter, the target normal VOL) 210 in which thedata to be provided to the host 10 as data inside the TPVOL isincorporated into the pool 300. This normal VOL 210 may be either theinternal VOL or the externally-coupled VOL described hereinabove.

(B) The target normal VOL 210 is partitioned into multiple real pages202 either after being regarded as a pool VOL 200 (after beingincorporated into the pool 300) or before being regarded as a pool VOL200 (before being incorporated into the pool 300). Below, a pool VOL,which was a target normal VOL, will be referred to as a “target poolVOL”.

(C) One TPVOL 220 corresponding to the target pool VOL 200 is created.The capacity of this TPVOL 220 is equal to or larger than the capacityof the target pool VOL 200.

(D) Only valid real pages #0, #3 and #4 of the multiple real pagescomprising the target pool VOL 200 are allocated to virtual pages #0, #3and #4 in the created TPVOL 220 corresponding to the locations of thesevalid real pages #0, #3 and #4. In other words, a valid real page 202inside the target pool VOL 200 is allocated to a virtual page 222, whichis in substantially the same location as the location (for example, theLBA (Logical Block Address)) of this valid real page 202. A “valid realpage” is a real page in which data to be provided to the host 10 isstored.

(E) Invalid real pages #1 and #2 of the multiple real pages comprisingthe target pool VOL 200 are not allocated to virtual pages in thecreated TPVOL 220. This avoids the wasteful allocation of a real page tothe TPVOL 220. Furthermore, an “invalid real page” is a real page inwhich data to be provided to the host 10 is not stored, for example, areal page in which only data written as a logical volume format isstored. This data includes 0 data (data in which all the bits are 0s).

(F) The TPVOL 222 to which valid real pages from inside the target poolVOL 200 have been allocated is provided to the host 10. Hereinbelow,this TPVOL will be referred to as the “target TPVOL”.

This makes it possible to read data stored in the target normal VOL 210in a case where the host 10 sends a read request specifying the targetTPVOL 220.

Furthermore, the data stored in the target normal VOL 210 may be storedin a real page inside a different pool VOL from the target pool VOL 200in accordance with a data migration inside the pool 300 (the migrationof data between real pages). However, in accordance with this pagemigration, the migration-destination real page is allocated to theallocation-destination virtual page of the migration-source real page inplace of the migration-source real page. For this reason, the host 10,upon sending a read request specifying the target TPVOL 220, is able toread the data stored in the target normal VOL 210 even though the datainside the target normal VOL has been arranged in a real page inside apool VOL that differs from the target pool VOL.

Also, a determination as to whether the real page inside the target poolVOL is a valid real page or an invalid real page, for example, may bemade in a process, which partitions the target pool VOL into multiplereal pages. For example, a real page in which data other than 0 data isstored may be determined to be a valid real page.

According to the method comprising (A) through (F) above, the reading ofdata stored in the target normal VOL in accordance with the sending of aread request specifying the TPVOL can be realized without migrating thedata from the target normal VOL to the TPVOL.

Example 1 will be explained in detail hereinbelow.

FIG. 2 shows the configuration of a storage system 100 related toExample 1.

The storage system 100 comprises multiple (or one) PDEVs 11200, and acontroller 102, which is coupled to these PDEVs 11200. These PDEVs11200, for example, make up one or more internal storages 112. Theinternal storage 112 is a storage apparatus of the storage system 100.Either one or multiple hosts 10, an internal storage 112, and amanagement terminal 14 are coupled to the controller 102, but one ormore external storages 12 may also be coupled in addition thereto. Theexternal storage 12 is a storage apparatus outside of the storage system100. The external storage 12 also comprises one or more PDEVs 12000.

The one or more internal storages 112 may comprise multiple types ofPDEVs 11200 featuring different I/O performance. The multiple types ofPDEVs 11200 with different I/O performance, for example, may be a SSD(Solid State Drive) and a HDD (Hard Disk Drive). The HDD may be a SATA(Serial ATA) HDD and a SAS (Serial Attached SCSI) HDD.

Two or more RAID groups may be configured using the multiple PDEVs11200. An internal VOL may be created based on a RAID group. Also, twoor more RAID groups may also be configured using the multiple PDEVs12000. An external VOL may be created based on this RAID group.

The controller 102 comprises FE-PK 101, BE-PK 109, SW-PK 107, CM-PK 103,and MP-PK 105. In the example given in the drawing, each type of package(PK) is standalone, but there may be multiple of at least one type of PKof the multiple types of PKs.

The FE-PK 101 is an apparatus comprising one or more front-end interfacedevices (FE-I/F hereinafter) 10100. The FE-I/F 10100 is an interfacedevice for communicating with a communication apparatus that exists inthe front end, such as the host 10 or the external storage 12. The FE-UF10100 receives an I/O request (a write request or a read request), andtransfers the received I/O request to the MP-PK 105. Furthermore, in acase where the input/output destination conforming to the I/O request isan externally-coupled VOL, the FE-I/F 10100 sends the I/O requestspecifying an external VOL to the external storage apparatus 12, whichcomprises this external VOL to which this externally-coupled VOL ismapped. In accordance with this, in a case where this I/O request is aread request, the FE-I/F 10100 receives data read from the external VOLfrom the external storage apparatus 12, and transfers this data to thehost 10, and in a case where the I/O request is a write request,transfers the data conforming to this write request to the externalstorage apparatus 12.

The BE-PK 109 comprises multiple backend interface devices (hereinafter,BE-I/F) 10900. The BE-I/F 10900 is an interface device for communicatingwith the PDEV 11200. The BE-I/F 10900 either reads data from a PDEV11200, which is the basis for the I/O-destination internal VOL, andtransfers this data to the cache memory (hereinafter, CM) 10302 of theCM-PK 103, or writes the data from the CM-PK 103 to the PDEV 112.

The MP-PK 105 comprises multiple (or one) microprocessors (hereinafter,MP) 10501, and one or multiple local memories (hereinafter LM) 10502.The MP 10501 processes an I/O request from the FE-I/F 10100. The LM10502 stores a required portion of management information stored in ashared memory (hereinafter, SM) 10301, and also stores a computerprogram to be executed by the MP 10501.

Multiple PKs, that is, the FE-PK 101, the BE-PK 109, the MP-PK 105, andthe CM-PK 103 are coupled to the SW-PK 107. The SW-PK 107 comprises oneor more switching devices for controlling the connections between thesemodules, and, for example, may be a crossbar switch.

The CM-PK 103 comprises the SM 10301 and a CM 10302. At least one of theSM and CM is a volatile and/or nonvolatile memory. The CM 10302 has astorage area for temporarily storing I/O-target data for a real page.The SM 10301 has a storage area for storing a variety of managementinformation (information used in the operation of the storage system100) and computer programs. The information and computer programs willbe explained further below.

The controller 102 comprises a Service Processor (hereinafter, SVP) 110.The SVP 110 is a kind of computer for either maintaining or managing thestorage system 100. The SVP 110 may be a management system, or amanagement system may be constructed using the SVP 110 and themanagement terminal 14. The management terminal 14, for example, is acomputer comprising a display device and an input device. The managementterminal 14, in accordance with operations by the administrator, sendsthe SVP 110 commands to perform various settings with respect to thestorage system 100. In response to these commands, the SVP 110 updatesmanagement information in the SM 10301 and configures information in theSM 10301.

FIG. 3 shows the storage hierarchy of the storage system 100.

A target device 230 is associated with a logical volume (for example, aTPVOL 220) that is provided to the host 10. The logical volume may bespecified in accordance with the target device 230 being specified in anI/O request from the host 10.

There is a normal VOL 210 that serves as an internal VOL and a normalVOL 210 that serves as an externally-coupled VOL. One or more normalVOLs are regarded as pool VOLs and comprise a pool 300. The I/Operformance of the internal VOL 210 may be a function of the I/Operformance of the PDEV 11200, which is based on this internal VOL 210.The I/O performance of the externally-coupled VOL may be a function ofthe I/O performance of the external VOL that is the mapping destinationof this externally-coupled VOL and/or the communication status betweenthe external storage apparatus 12 comprising the external VOL and thecontroller 102.

The pool 300 may comprises multiple pool VOLs 200 featuring differentI/O performance. That is, the pool 300 may comprise multiple tiers. Eachtier may comprise pool VOLs 200 having substantially the same I/Operformance. In a pool 300 that comprises multiple tiers, a pagemigration may be performed on the basis of the I/O frequency of the realpage (of the virtual page). Specifically, for example, in a case where areal page with a high I/O frequency is located in a low tier, the datainside this real page is migrated to a real page in a high tier. Also,for example, in a case where a real page with a low I/O frequency islocated in a high tier, the data inside this real page is migrated to areal page in a low tier. The page migration may be performed on thebasis of another type of I/O attribute information, for example, a lastI/O time either instead of or in addition to the I/O frequency of thereal page (or virtual page).

For example, as shown in FIG. 4, a real page 202 from the pool 300 isallocated to a virtual page 222 inside a TPVOL 220. As a result, asshown in FIG. 5, for example, five virtual pages 222 of the six virtualpages 222 comprising the TPVOL #100 become virtual pages 222 to whichreal pages 202 have been allocated (that is, used virtual pages).Hereinbelow, for the sake of convenience, a virtual page will beabbreviated as “VP” and a real page will be abbreviated as “RP” in thedrawings. A real page inside any pool VOL 200 in the pool 300 may beallocated to a virtual page inside any TPVOL 220 associated with thispool 300.

FIG. 6 shows the tables and computer programs stored in the SM 10301.

The management information stored in the SM 10301 comprises varioustypes of tables. Specifically, for example, the tables stored in theshared memory 10301 include a TPVOL configuration table 601, a VPconfiguration table 603, a pool VOL configuration table 605, an RPconfiguration table 607, and a TD configuration table 609. At least oneof these tables may be created after the storage system 100 is inoperation.

Also, the computer programs stored in the SM 10301, for example, includean I/O program 611, a performance monitoring program 612, a pagemigration program 613, and a VOL conversion program 615. The I/O program611 processes an I/O request from the host 10. The performancemonitoring program 612 monitors the I/O frequency of a real page (or avirtual page). The page migration program 613 performs a page migration.The VOL conversion program 615 converts a target normal VOL into atarget TPVOL, and provides the target TPVOL to the host 10.

FIG. 7 shows the configuration of the TPVOL configuration table 601.

The TPVOL configuration table 601 shows the number of real pages 202that have been allocated to a TPVOL 220, and a breakdown thereof.Specifically, for example, this table 601 comprises the followinginformation for each TPVOL 220:

(*) an index 701 assigned to a TPVOL 220;

(*) a TPVOL ID 702 denoting the identification number of the TPVOL 220;

(*) a number of VPs 703 denoting the total number of virtual pages 222comprising the TPVOL 220;

(*) a number of UVPs 704 denoting the number of used virtual pages 222of the total number of virtual pages inside the TPVOL 220; and

(*) a number of URPs 705 denoting how many real pages 202 are allocatedto which pool VOLs 200.

According to the example in this drawing, the situation is as follows:

(*) the TPVOL #100 comprises six virtual pages;

(*) five of these six virtual pages are used virtual pages; and

(*) of these five used virtual pages, four real pages are beingallocated from pool VOL #1, one real page is being allocated from poolVOL #2, and no real pages are being allocated from pool VOL #3.

FIG. 8 shows the configuration of the VP configuration table 603.

The VP configuration table 603 shows the corresponding relationshipbetween a virtual page 222 and a real page 202. Specifically, forexample, this table 603 comprises the following information for eachvirtual page:

(*) a TPVOL ID 801 denoting the ID (for example, the identificationnumber) of the TPVOL comprising a virtual page 222;

(*) a VP ID 802 denoting the ID of the virtual page 222 in the TPVOL220;

(*) a pool VOL ID 803 denoting the ID of the pool VOL 200 comprising thereal page 202 allocated to the virtual page 222; and

(*) a RP ID 804 denoting the ID of the real page 202, which is allocatedto the virtual page 222, in the pool VOL.

For example, “FFFF” is used as the value of the pool VOL ID 803 and theRP ID 804 corresponding to a virtual page 222 to which a real page 202has not been allocated. According to the example in this drawing, realpage #5 of pool VOL #6 is allocated to virtual page #0 of TPVOL #100.Also, according to the example in this drawing, a real page 202 has yetto be allocated to virtual page #2 of TPVOL #100.

FIG. 9 shows the configuration of the pool VOL configuration table 605.

The pool VOL configuration table 605 shows information related to theconfiguration of a pool VOL 200. Specifically, for example, this table605 comprises the following information for each pool VOL 200:

(*) a pool VOL ID 901 denoting the ID of a pool VOL;

(*) a start page ID 902 denoting the ID of the real page at the head ofthe pool VOL;

(*) an end page ID 903 denoting the ID of the real page at the end ofthe pool VOL;

(*) a number of total pages 904 denoting the total number of real pagesin the pool VOL;

(*) a number of URPs 905 denoting the number of real pages (used realpages) in the pool VOL already allocated to virtual pages;

(*) a PDEV type 906 denoting the type of PDEV constituting the basis ofthe pool VOL; and

(*) a tier ranking 907 denoting the ranking of the tier to which thepool VOL belongs.

According to the example in this drawing, pool VOL #0 comprises six realpages 202 of real pages #0 through #5, and five of these six real pages202 are used real pages. Also, according to the drawing, the pool VOL #0is a VOL based on a SSD, and belongs to the tier ranking 0 (the tierfeaturing the highest I/O performance).

FIG. 10 shows the configuration of the RP configuration table 607.

The RP configuration table 607 shows information related to the realpage. Specifically, for example, this table 607 comprises the followinginformation for each real page:

(*) a RP ID 1001 denoting the ID of the real page uniquely identifiedinside the storage system 100;

(*) a pool VOL ID 1002 denoting the ID of the pool VOL 200 comprisingthis real page;

(*) a RP ID in pool VOL 1003 denoting the ID of the real page uniquelyidentified inside the pool VOL 200;

(*) a VOL ID 1004 denoting the ID of the TPVOL 220 comprising thevirtual page 222 that is the allocation destination of the real page;

(*) a VP ID 1005 denoting the ID of the virtual page 222 that is themigration destination of the real page; and

(*) a IOPS (IOs] per second) 1006 denoting the total number of readsand/or writes per unit of time for a real page (or anallocation-destination virtual page).

According to the example in the drawing, real page #0 is in pool VOL #0,is allocated to virtual page #0 of TPVOL #100, and has either a read ora write performed once per unit of time (for example, per second). Also,real page #8 is associated with real page #2 of pool VOL #1. Real page#8 has not been allocated to a virtual page 222. For this reason, thevalues of the TPVOL ID 1004, the VP ID 1005 and the IOPS 1006 are all“FFFF”.

FIG. 11 shows the configuration of the TD configuration table 609.

The TD configuration table 609 shows the corresponding relationshipbetween a target device 230 area and a logical volume area.Specifically, for example, this table 609 comprises the followinginformation for each target device 230 area (hereinafter, TD area):

(*) a target device ID 1101 denoting the ID of the target device 230comprising the TD area;

(*) a target device area ID 1102 denoting the ID of the TD area;

(*) a data storage-destination volume ID 1103 denoting theidentification number of the logical volume to which an areacorresponding to the TD area belongs; and

(*) a data storage-destination volume ID 1104 denoting theidentification number of the logical volume that constitutes the storagedestination of the data in the TD area.

According to the example in this drawing, data, which is in area #0 oftarget device #1, is stored in area #0 of volume #1. The volume referredto here may include a TPVOL, a pool VOL, a normal VOL (including aninternal VOL and an externally-coupled VOL), and an external VOL.

The processing performed by this example will be explained below.

FIG. 12 is a flowchart of a data write process.

In S1201, the I/O program 611 receives a write request issued from thehost 10. The I/O program 611 analyzes this write request and identifiesthe write-destination virtual page, which belongs to the TPVOL specifiedin this write request, and the address specified in this write request.

In S1202, the I/O program 611 decides whether a real page 202 has beenallocated to the write-destination virtual page (that is, whether or notthe write-destination virtual page is a used virtual page).Specifically, for example, the I/O program 611 refers to the VPconfiguration table 603 and identifies IDs 803 and 804, which correspondto the ID 801 of the write-destination TPVOL and the ID 802 of thewrite-destination virtual page identified in S1201. In a case where theidentified IDs 803 and 804 are values signifying allocated (in theexample of FIG. 8, a numeral is listed), the I/O program 611 moves toS1204. Alternatively, in a case where the identified IDs 803 and 804 arevalues signifying unallocated (in the example of FIG. 8, “FFFF” islisted), the I/O program 611 moves to S1203.

In S1203, the I/O program 611 allocates an allocatable real page 202 tothe write-destination virtual page from the pool 300. Specifically, forexample, the I/O program 611 identifies the ID 1001 of a real page forwhich the values of IDs 1004 and 1005 signify unallocated (“FFFF” in theexample of FIG. 10) from the RP configuration table 607. The I/O program611 registers the ID of the write-destination TPVOL and the ID of thewrite-destination virtual page in the table 607 as 1004 and 1005corresponding to the identified ID 1001. Also, the I/O program 611updates the number of UVPs 704 and the number of URPs 705 in the TPVOLconfiguration table 601, updates the IDs 803 and 804 in the VPconfiguration table 603, and updates the number of URPs 905 in the poolVOL configuration table 605.

In S1204, the I/O program 611 stores write data conforming to the writerequest received in S1201 in the real page 202 allocated to thewrite-destination virtual page. Specifically, for example, the I/Oprogram 611 refers to the VP configuration table 603, identifies ID 803and ID 804 corresponding to the write-destination virtual page, andstores the write data in the real page 202 identified from theidentified IDs 803 and 804.

FIG. 13 is a flowchart of pool operation processes.

This processing starts when the pool 300 in the storage system 100 hasbegun operating.

In S1301, the storage system 100 transitions to a state in which a pageis able to be allocated. That is, the status becomes such that theabove-mentioned data write process (refer to FIG. 12) is able to beperformed.

In S1302, the performance monitoring program 612 monitors the number ofreads/writes (that is, the I/O frequency) for a real page (virtualpage). Specifically, for example, the performance monitoring program 612monitors either the reads or the writes with respect to the real pages,and updates the IOPS 1006 in the RP configuration table 607 for a realpage for which a read or write has occurred.

In S1303, the performance monitoring program 612 decides whether or nota real page that is not in the appropriate tier exists. Specifically,for example, the performance monitoring program 612 decides for eachreal page whether or not the IOPS 1006 of the real page is appropriatefor the tier ranking 907 of the pool VOL comprising this real page (forexample, whether or not the IOPS 1006 of the real page belongs to therange of IOPS corresponding to the tier ranking 907 of the pool VOLcomprising this real page). In a case where the result of this decisionis negative, the performance monitoring program 612 moves to S1304.Alternatively, in a case where the result of this decision isaffirmative, the performance monitoring program 612 returns to S1302without performing the processing of S1304.

In S1304, the page migration program 613 performs a page migration.Specifically, for example, the page migration program 613 migrates thedata inside the real page for which it was decided in S1303 that thetier ranking is inappropriate to an allocatable real page (a free realpage) 202 inside a pool VOL with a tier ranking that is appropriate forthe IOPS 1006 of this real page. The migration-destination real page isallocated to the virtual page allocated to the migration-source realpage in place of the migration-source real page. The migration-sourcereal page may be overwritten with 0 data, which is an example of aprescribed data.

The processing from S1302 to S1304 described above may be performed foreach pool 300 of the storage system 100. Also, S1302 may be performedregularly (or irregularly).

The conversion process from the target normal VOL to the target TPVOL,which is one of the characteristic features of this example, will beexplained below. This explanation will be divided into a case in whichthe target normal VOL is an internal VOL, and a case in which it is anexternally-coupled VOL.

<Case where Target Normal VOL is Internal VOL>

FIGS. 14A through 14C show an overview of the flow of processing forconverting a target normal VOL (a target internal VOL), for which an I/Ohas been issued from the host 10, to a target TPVOL.

As shown in FIG. 14A, it is supposed that a target internal VOL 210 b isspecified in an I/O request from the host 10, and that the state is suchthat data is to be input/output in accordance with this I/O request.

In order to make this target internal VOL 210 b a target TPVOL, the VOLconversion program 615 performs the following processes (1) through (4)shown in FIG. 14B, and the following process (5) shown in FIG. 14C:

(1) creates a new TPVOL 220 b associated with the pool 300;

(2) incorporates the target internal VOL 210 b into the pool 300 (Inaccordance with this, the target internal pool 210 b becomes a targetpool VOL 200 b);

(3) partitions the target pool VOL 200 b into multiple pages (duringthis partitioning process, it may be decided whether or not each realpage in the target pool VOL 200 b is a valid real page);

(4) associates the TPVOL 220 b with the target pool VOL 200 b(Specifically, for example, only a valid real page of the multiple realpages in the target pool VOL 200 b may be allocated to a virtual page inthe target TPVOL corresponding to the location of this valid real page);and

(5) associates the TPVOL 220 b with a target device 230 b, which isassociated with the target internal VOL 210 b.

According to (1) through (4) above, the target internal VOL 210 b isconverted to the target TPVOL, and according to (5) above, the targetTPVOL transitions to a state in which it is accessible from the host 10.Furthermore, for example, any of the following (A) through (C) may beused with respect to this series of processes (1) through (5).

(A) The above-described series of processes (1) through (5) may beperformed without suspending the reception from the host 10 of an I/Orequest specifying a target internal VOL (specifically, for example, thetarget device 230 b with which this internal VOL is associated) eventhough the processing for converting the internal VOL 210 b to the TPVOLhas started. For example, the I/O program 611, upon receiving the I/Orequest specifying the internal VOL 210 b that is in the process ofbeing converted to the TPVOL, may, in a case where this I/O request is aread request, process this read request. In a case where the I/O requestis a write request, the I/O program 611 may temporarily write the dataconforming to this write request to the CM 10302. Then, after the VOLconversion process (the process for converting the normal VOL to theTPVOL) has ended, the I/O program 611 may allocate a real page to thewrite-destination virtual page and write the data in the CM 10302 to thereal page.

(B) The reception of an I/O request from the host 10 specifying a targetinternal VOL may be suspended when the process for converting from aninternal VOL 210 b to a TPVOL has started. Thereafter, when the processfor converting from the internal VOL 210 b to the TPVOL has ended, thereception of the I/O request from the host 10 specifying the targetinternal VOL may be resumed.

(C) All the pages into which the target pool VOL 200 b was partitionedmay be allocated one time to the entire TPVOL, thereafter, a decision asto whether each real page is a valid real page may be made, and theallocation from the TPVOL 220 b of a real page, which has been decidedto be an invalid real page, may be cancelled (Furthermore, FIGS. 19 and20, which will be explained further below, are this (C) type).

FIG. 15 is a flowchart of the process up to the state when the targetinternal VOL becomes accessible from the host 10 as the TPVOL.

In S1501, the VOL conversion program 615 performs the process forconverting from the target internal VOL to the TPVOL (processes (1)through (4) above).

In S1502, the VOL conversion program 615 associates the TPVOL, to whichthe target internal VOL was converted, with the target device, withwhich the target internal VOL had been associated, by updating the TDconfiguration table 609 (process (5) above).

FIG. 16 is a diagram illustrating S1502 of FIG. 15 (the updating of theTD configuration table 609).

The program 615 converts the ID 1103 corresponding to the target devicewith which the target internal VOL has been associated from the ID ofthe target internal VOL to ID of the target TPVOL.

FIGS. 17 through 20 are flowcharts of S1501 of FIG. 15 (process forconverting from the internal VOL to the TPVOL).

In S1701, the program 615 creates a TPVOL 220 b. Specifically, forexample, the program 615 creates a TPVOL 220 b having a capacity, whichis equal to or larger than the capacity of the internal VOL 210 b, andwhich is a multiple of the page size. This is because the internal VOL210 b (the pool VOL 220 b) is partitioned into multiple pages (areas ofa prescribed size) afterwards. That is, when the internal VOL 210 b issegmented into areas of the same size, ultimately, there is thelikelihood of an area of a size that is less than one page remaining,but in a case where the capacity of the TPVOL 220 b is equal to orlarger than the capacity of the internal VOL 210 b and is a multiple ofthe page size, an area that is less than one page in size may remainwithout causing a problem.

In S1702, the program 615 makes the internal VOL 210 b a pool VOL 200 bby incorporating the internal VOL 210 b into the pool 300.

In S1703, the program 615 decides whether or not an area of the pool VOL200 b, which has yet to be partitioned into pages (hereinafter,unpartitioned area), has a capacity of equal to or larger than thedesired one page. In a case where the result of the decision is that theunpartitioned area is equal to or larger than one page, the program 615moves to S1706 of FIG. 19. In a case where the result of the decision isthat the unpartitioned area is less than one page, the program 615 movesto S1709 of FIG. 20.

In S1706 (FIG. 19), the program 615 partitions the unpartitioned area inthe pool VOL 200 from the start area into one page worth of capacity,and creates one real page.

In S1707, the program 615 allocates the RP ID in pool VOL 1003 (refer toFIG. 10) to the real page obtained in S1706. For example, the program615 may allocate as the ID 1003 of the real page obtained in S1706 avalue that has not yet been allocated as an allocation ID 1003. An RP ID1001 in the pool 300 may also be allocated here.

In S1708, the program 615 allocates the obtained real page to a virtualpage, which is in a location that corresponds to the location of thisreal page, and registers the corresponding relationship between thisreal page and the allocation-destination virtual page of this real pagein the RP configuration table 607. Specifically, for example, theprogram 615 registers the ID 1002 of the pool VOL comprising theobtained real page, the ID 1003 that was allocated to the obtained realpage, the ID 1004 of the TPVOL 220 b, and the ID 1005 of theallocation-destination virtual page of the obtained real page in the RPconfiguration table 607. This S1708 is performed even when valid data isnot stored in the obtained real page (for example, even when only 0 datais stored in the real page. By performing this S1708 each time a realpage is obtained, the rows shown in RP ID 1001 “15” through “19” of FIG.21 are added to the RP configuration table 607.

In S1704 (FIG. 18), the program 615 updates the TPVOL configurationtable 601, the VP configuration table 603, and the pool VOLconfiguration table 605. For example, the number of UVPs 704 of theallocation-destination TPVOL 220 b is incremented by 1, the number ofURPs 705 is updated, the IDs 803 and 804 of the real page allocated tothe allocation-destination virtual page are registered in the ID 802 ofthis virtual page, and the total number of pages 904 and the number ofURPs 905 are incremented by 1 with respect to the target pool VOL 200 bthat obtained the real page.

In S1705, the program 615 decides whether or not all the areas insidethe internal VOL 210 b have been partitioned. In a case where all theareas have not been partitioned, the program 615 returns to S1703.Alternatively, in a case where all the areas have been partitioned, theprogram 615 ends the processing.

Now then, in a case where the result of the decision in S1703 of FIG. 18is negative, that is, a case in which the unpartitioned area is lessthan one page capacity, S1709 of FIG. 20 is performed.

In S1709, the program 615 reserves a free real page of another pool VOL200 in the pool 300.

In S1710, the program 615 copies the data in the unpartitioned area ofthe internal VOL 210 b (an area of less than one page capacity) to thereal page reserved in S1709. The program 615 stores 0 data in thesurplus area of the copy-destination real page.

In S1711, the program 615 allocates the copy-destination real page tothe virtual page at the end of the TPVOL 220 b, and registers thecorresponding relationship between this real page and theallocation-destination virtual page of this real page in the RPconfiguration table 607. Specifically, for example, the program 615registers the ID 1002 of the pool VOL comprising the copy-destinationreal page, the ID 1003 of the copy-destination real page, the ID 1004 ofthe TPVOL 220 b, and the ID 1005 of the allocation-destination virtualpage of the copy-destination real page in the RP configuration table607. When this S1711 is performed, for example, the pool VOL ID 1002 inrow “19” of ID 1001 in FIG. 21 is not “3”, but rather transitions to theID 1002 of another pool VOL.

After S1711, the above-described S1704 of FIG. 18 is performed. In acase where S1711 was performed, the result of the determination of S1705is typically affirmative, and the processing ends.

According to the flows of processing shown in FIGS. 15 through 20described above, the target internal VOL 210 b can be provided to thehost 10 as the TPVOL 220 b without all of the data from the start to theend of the target internal VOL 210 b being migrated to the TPVOL. Thismakes it possible to alleviate a decrease in I/O performance in thestorage system 100 since there is no load resulting from a migrationfrom the internal VOL 210 b to the TPVOL 220.

Furthermore, the following variations can be used in Example 1.

<1: Processing of FIG. 19 in Series of Processes Shown in FIGS. 15Through 20 May be Replaced by the Processing of FIGS. 22>

S2201 and S2202 are substantially the same as S1706 and S1707 of FIG.19.

In S2203, the program 615 decides whether or not a partitioned real pageis an invalid real page (for example, a real page in which only 0 datais stored). In a case where the result of the decision is affirmative,the program 615 moves to S2204. Alternatively, in a case where theresult of the decision is negative, the program 615 moves to S2206.S2206 is substantially the same as S1708 of FIG. 19.

In S2204, the program 615 registers information in the RP configurationtable 607 to the effect that the real page obtained in S2201 is notallocated to a virtual page of the TPVOL. Specifically, for example, asshown in FIG. 24A, the program 615 registers “FFFF” in the RPconfiguration table 607 as the IDs 1004 and 1005 corresponding to theIDs 1002 and 1003 of the obtained real page, and as the IOPS 1006.

In S2205, the program 615 registers information in the VP configurationtable 603 to the effect that the real page obtained in S2201 is notallocated to a virtual page of the TPVOL. Specifically, for example, asshown in FIG. 24B, the program 615 registers “FFFF” in the VPconfiguration table 603 as the ID 803 and the ID 804 corresponding tothe virtual page, which is in a location that corresponds to thelocation of the obtained real page.

In so doing, in a case where the obtained real page is an invalid page,this real page is not allocated to a TPVOL virtual page. For example,since real pages #2 and #3 in rows “17” and “18” of ID 1001 in FIG. 24,and in pool VOL #3 shown in FIG. 25 are invalid pages, these real pages#2 and #3 are not allocated to the virtual pages #2 and #3 in the TPVOL#102.

<2: Processing of FIG. 20 in Series of Processes Shown in FIGS. 15Through 20 May be Replaced by the Processing of FIG. 23>

S2301 is substantially the same as S1709 of FIG. 20.

In S2302, the program 615 decides whether or not only 0 data is storedin an unpartitioned area of the internal VOL 210 b. In a case where theresult of this decision is affirmative, the program 615 moves to S1704.Alternatively, in a case where the result of this decision is negative,the program 615 moves to S2303. S2303 and S2304 are substantially thesame as S1710 and S1711 of FIG. 20.

<3: Program 615 May Selectively Decide Whether to Perform ProcessingShown in FIGS. 19 and 20 or Processing Shown in FIGS. 22 and 23>

For example, the program 615 makes a decision as to whether or notperformance is the priority as shown in FIG. 34 (S3401), and in a casewhere the result of this decision is affirmative, may perform theprocessing of FIGS. 19 and 20, and in a case where the result of thisdecision is negative (for example, when the priority is capacityefficiency), may perform the processing of FIGS. 22 and 23. The decisionof S3401, for example, may be made when S1703 is either YES or NO.Performance priority, for example, signifies that the emphasis is placedmore on performing the processing for converting the target normal VOLto the TPVOL at high speed than on capacity efficiency in which realpages are used as little as possible.

Now then, the preceding is an explanation of a case (the first case) inwhich the target normal VOL is an internal VOL. Next, a case (the secondcase) in which the target normal VOL is an externally-coupled VOL willbe explained. In so doing, the explanation will focus on the points ofdifference with the first case, and explanations of the points in commonwith the first case will be simplified or omitted.

<Case in which Target Normal VOL is Externally-Coupled VOL>

A second variation of the first embodiment will be explained below.

FIGS. 26A through 26C show an overview of the flow of processing forconverting a target normal VOL (a target externally-coupled VOL), forwhich an I/O has been issued from the host 10, to a target TPVOL.

In the flows of processing shown in FIGS. 26A through 26C, (11) through(15) are substantially the same as (1) through (5) shown in FIGS. 14Athrough 14C, and the point of difference is simply the fact that thetarget normal VOL is an external VOL 210 c rather than an internal VOL210 b. In FIG. 26B and FIG. 26C, a TPVOL 220 c is created, and theexternally-coupled VOL 210 c is regarded as a pool VOL 200 c.

In this case, the target externally-coupled VOL 210 c is converted tothe target TPVOL 220 c in accordance with the processing of (11) through(15).

Thereafter, the following processes (16) through (18) shown in FIG. 27Aand FIG. 27B are performed.

(16) The page migration program 613 migrates valid data inside the poolVOL 200 c to a pool VOL 200 that serves as an internal VOL 210 in thepool 300.

(17) The page migration program 613 allocates the migration-destinationreal page to the virtual page, which was the allocation destination ofthe migration-source real page, in place of the migration-source realpage (the real page in the pool VOL 200 c serving as theexternally-coupled VOL 210 c).

(18) After the processing of (16) and (17) has been performed for allthe valid data in the pool VOL 200 c, the external storage 12 is removedfrom the storage system 100.

According to the above-mentioned processes (11) through (15), all of thedata from the start to the end of the target externally-coupled VOL 210c can be provided from the target externally-coupled VOL 210 c to thehost 10 as the TPVOL 220 c without being migrated to the TPVOL. Thismakes it possible to alleviate a decrease in I/O performance in thestorage system 100 since there is no load resulting from a migrationfrom the externally-coupled VOL 210 c to the TPVOL 220.

Also, according to the processes (16) through (18), all the valid datain the pool VOL 200 c (the externally-coupled VOL 210 c) is migrated toone or more other pool VOLs (internal VOLs) in the pool 300 comprisingthis pool VOL 200 c, and the external storage 12, which comprises theexternal VOL for which the externally-coupled VOL 210 c is the mappingdestination, is removed. This external storage 12 can be used in anotherstorage system.

FIG. 28 is a flowchart of a series of processes via which a targetexternally-coupled VOL is changed to a state in which it is accessiblefrom the host 10 as a TPVOL, and the external storage is removed.

S2801 and S2802 correspond to the processes (11) through (15), and aresubstantially the same as S1501 and S1502 of FIG. 15. Furthermore, inS2802, as shown in FIG. 29, the allocation-destination TPVOL of a realpage in the target pool VOL (target externally-coupled VOL) isassociated with the target device, with which the targetexternally-coupled VOL has been associated.

S2803 corresponds to the processing of (16) and (17) described above.The page migration program 613 migrates data stored in a real page inthe pool VOL 200 c serving as the externally-coupled VOL 210 c to one ormore other pool VOLs 200 serving as internal VOLs 210 in the pool 300comprising this pool VOL 200 c. The migration-destination pool VOL 200(internal VOL 210) may be decided in one of several ways. For example,the migration-destination pool VOL 200: (a) may be onemigration-destination pool VOL 200 for one migration-source target poolVOL; (b) may be decided randomly; (c) may be decided in round-robinfashion, and the data distributed evenly among multiple pool VOLs(internal VOLs); (d) may be a pool VOL 200 for realizing rebalancing inwhich used real pages become evenly distributed among multiple poolVOLs; or (e) may be regarded as a pool VOL 200 for realizing areallocation in which data inside a real page is arranged in the poolVOL 200 belonging to a tier that is appropriate for the IOPS 1006 ofthis real page.

In S2804, the external storage 12 is removed from the storage system100.

The preceding is the flow of a series of processes related to this case.

The rebalance function and reallocation function of the page migrationprogram 613 will be explained below.

FIG. 30 is a diagram for illustrating the rebalance function.

The rebalance function is for evening out the real pages 202 allocatedfrom multiple pool VOLs 200 in the pool 300 for each TPVOL 220.Specifically, as shown in the TPVOL configuration table 601 at the topof FIG. 30, real pages are not allocated uniformly from the multiplepool VOLs #1 through #3 in the TPVOLs #100 and #101. Specifically, forexample, with respect to TPVOL #100, the greatest number of the realpages are allocated from pool VOL #1 and no real pages are allocatedfrom pool VOL #3.

According to the rebalance function, real pages are allocated to each ofthe TPVOLs #100 and #101 uniformly from the multiple pool VOLs #1through #3 as shown in the table 601 at the bottom of FIG. 30. Forexample, the page migration program 615 can realize the uniformarrangement shown in the lower portion of FIG. 30 by migrating the datainside one real page of the four real pages allocated from pool VOL #1to TPVOL #100 to pool VOL #2, and migrating the data inside another realpage of these four real pages to pool VOL #3. This rebalance processingmay be performed at prescribed intervals.

According to the rebalance function, multiple real pages allocated toone TPVOL are uniformly distributed among multiple pool VOLs, and evenwhen I/Os are concentrated on one TPVOL, the I/Os can be expected to bedistributed among multiple pool VOLs.

FIG. 31 is a diagram for illustrating the reallocation function.

According to the reallocation function, data in a real page (or avirtual page) is migrated to a real page of a pool VOL belonging to atier that is appropriate for the IOPS 1006 of this real page (or virtualpage).

For example, it is supposed that the tier ranking (typically, the I/Operformance) of pool VOL #0 is the highest, the tier ranking of pool VOL#1 is the next highest, and the tier ranking of pool VOL #2 is the nexthighest.

In accordance with this, for example, since the IOPS 1006 of the realpages for which the ID 1001 is “0” and “1” are low at “1” and “2”, thedata inside the real pages for which the ID 1001 are “0” and “1” ismigrated to real pages in pool VOL #2, which is the low tier.Alternatively, since the IOPS 1006 of the real pages for which the ID1001 is “10” and “11” are high at “6” and “5”, the data inside the realpages for which the ID 1001 are “10” and “11” is migrated to real pagesin pool VOL #0, which is the high tier.

The relationship between the rebalance and the reallocation may be asfollows. For example, preference may be given to a reallocation that isperformed based on the IOPS 1006. In so doing, in a case where there aremultiple pool VOLs in the same tier, a rebalance may be performed sothat the allocation-destination data is not disproportionately migratedto the same pool VOL.

FIG. 32 is a flowchart of a data write process performed whileconverting from a target externally-couple VOL to a TPVOL, and whilemigrating data from a target pool VOL (target externally-coupled VOL) toanother pool VOL.

In S3201, the I/O program 611 decides whether or not thewrite-destination VOL is a TPVOL. In a case where the result of thedecision is affirmative, the I/O program 611 moves to S3203. In a casewhere the result of the decision is negative, the I/O program 611 movesto S3202.

In S3202, the program 611 changes the write-destination VOL from anormal VOL 201 to the TPVOL 220 subsequent to the conversion of thisnormal VOL 210.

In S3203, the program 611 allocates a real page to the write-destinationvirtual page. Furthermore, in a case where a real page has already beenallocated to the write-destination virtual page, this S3203 may beskipped.

In S3204, the program 611 decides whether or not the real page 212allocated to the write-destination virtual page is a real page in aninternal VOL 210. In a case where the result of the decision isaffirmative, the program 611 moves to S3206. In a case where the resultof the decision is negative (that is, a case in which the real pageallocated to the write-destination virtual page is a real page in anexternally-coupled VOL), the program 611 moves to S3205.

In S3206, the program 611 stores data conforming to the write request inthe real page 202 allocated to the write-destination virtual page.

In S3205, the program 611 allocates an allocatable real page inside thepool VOL serving as the internal VOL 210 to the write-destinationvirtual page in place of the real page 202 allocated to this virtualpage, and stores the data conforming to the write request in thisallocated real page.

According to this data write process, the storage system 100 need notsuspend the receiving of a write request for a target device with whicha target externally-coupled VOL is associated even during the conversionof the target externally-coupled VOL to a TPVOL, or during the migrationof data from a target pool VOL (the target externally-coupled VOL) toanother pool VOL.

Furthermore, the processing of S3201, S3202, and S3203 is not limited tothis second case, and may also be performed with respect to theabove-described first case (the case in which the target normal VOL isan internal VOL). That is, S3202 may be performed prior to the TPVOLbeing associated with the target device, which is associated with thetarget normal VOL, and S3202 need not be performed after the TPVOL hasbeen associated with the target device, which is associated with thetarget normal VOL.

The preceding is an explanation of a case (the second case) in which thetarget normal VOL is an externally-coupled VOL. Furthermore, a rebalanceprocess and a reallocation process may be performed regardless ofwhether the normal VOL is an internal VOL or an externally-coupled VOL.

Example 2

Example 2 will be explained below. In so doing, the explanation willfocus on the points of difference with Example 1, and explanations ofthe points in common with Example 1 will be either simplified oromitted.

FIG. 33 shows the configuration of a storage system 200 related toExample 2.

The storage system 200 comprises a main module 120 in place of the SW-PK107 and the CM-PK 103 elements inside the storage system 100.

The main module 120 comprises an SM 10301 and a CM 10302, and alsocomprises a switch controller 33000.

Multiple PKs, that is, a FE-PK 101, a BE-PK 109, and a MP-PK 105 arecoupled to the switch controller 33000. The switch controller 33000controls the connections between these PKs, and the connections betweenthe PKs and either the SM or the CM.

Even a storage system 200 having the configuration described aboveachieves the same effects as the storage system 100 explained usingExample 1.

The examples described hereinabove are examples for illustrating thepresent invention, and do not purport to limit the scope of the presentinvention solely to these examples. The present invention can be putinto practice in a variety of other modes without departing from thegist thereof.

For example, the tier ranking of an internal VOL added anew to thestorage system 100 (200) may be decided in accordance with theperformance of the PDEV based on this internal VOL. Also, the tierranking of an externally-coupled VOL newly added to the storage system100 (200) may be the lowest level, may be decided on the basis of theperformance of the PDEV based on the external VOL mapped to thisexternally-coupled VOL (and the status of the path to the externalstorage comprising this externally-coupled VOL), or may be configured bythe user.

REFERENCE SIGNS LIST

-   -   10 Host    -   12 External storage    -   14 Management terminal    -   100 Storage system    -   112 Internal storage

The invention claimed is:
 1. A storage system, which is coupled to ahost computer, comprising: multiple first storage drives; and acontroller configured to: provide multiple virtual volumes to the hostcomputer; manage a storage pool including multiple physical pages whichare partitioned storage areas of the first storage drives; and inresponse to a write request to a particular one of the virtual volumes,allocate a physical page of the multiple physical pages, which is notallocated to any virtual volume, to the particular one virtual volume,and store write data corresponding to the write request in the allocatedphysical page, wherein the controller is further configured to: manage afirst logical volume in which user data is stored; incorporate multiplefirst physical storage pages, which are partitioned storage areas of thefirst logical volume, a into the storage pool; create a first virtualvolume; allocate each of the multiple first physical pages to a virtualpage, which has a same location in the first virtual volume as eachcorresponding one of the multiple first physical pages in the firstlogical volume, of the first virtual volume; and provide the hostcomputer with the first logical volume.
 2. A storage system according toclaim 1, further comprising: multiple second storage drives, wherein thecontroller is configured to manage multiple second physical pages, whichare partitioned storage areas provided by the multiple second storagedrives, as physical pages of the storage pool.
 3. A storage systemaccording to claim 1, further comprising: multiple second storagedrives, wherein the controller is configured to: manage multiple secondphysical pages, which are partitioned storage areas provided by themultiple second storage drives, as physical pages of the storage pool;and migrate data stored in one of the multiple first physical pagesallocated to the first virtual volume to one of the multiple secondphysical pages, and allocate the one of the multiple second physicalpages, to which data is migrated, to the first virtual volume.
 4. Astorage system according to claim 3, wherein the multiple second storagedrives feature higher performance than the first storage drives, and thecontroller is configured to: monitor an access frequency with respect toeach physical page allocated to the first virtual volume, from among themultiple first physical pages; and migrate data stored in a physicalpage with high access frequency of the physical pages allocated to thefirst virtual volume from among the multiple first physical pages, to atleast one physical page of the multiple second physical pages, andallocate at least one physical page of the multiple second physicalpages to the first virtual volume.
 5. The storage system according toclaim 1, wherein the first logical volume is created using storage areaof the first storage drives.
 6. The storage system according to claim 1,wherein the storage system is coupled to an external storage systemcomprising third storage drives, and wherein the first logical volume iscreated using storage area of the third storage drives.
 7. The storagesystem according to claim 6, wherein the controller is configured to:migrate data of the first virtual volume, stored in the third storagedrives, to the first storage drives; and provide the first virtualvolume, which is created using storage area of the first storage drives,to the host computer.
 8. The storage system according to claim 1,wherein the same location is logical block address (LBA).
 9. The storagesystem according to claim 1, wherein capacity of the first virtualvolume is the same as capacity of the first logical volume.
 10. A datamanagement method in a storage system, which is coupled to a hostcomputer, and which comprises multiple first storage drives and acontroller, the data management method comprising the steps: providing,by the controller, multiple virtual volumes to the host computer;managing, by the controller, a storage pool including multiple physicalpages which are partitioned storage areas of the first storage drives;and in response to a write request to a particular one of the virtualvolumes, allocating, by the controller, a physical page of the multiplephysical pages, which is not allocated to any virtual volume, to thevirtual volume particular one, and store write data corresponding to thewrite request in the allocated physical page; managing, by thecontroller, a first logical volume in which user data is stored;incorporating, by the controller, multiple first physical storage pages,which are partitioned storage areas of the first logical volume, intothe storage pool; creating, by the controller, a first virtual volume;allocating, by the controller, each of the multiple first physical pagesto a virtual page, which has a same location in the first virtual volumeas each corresponding one of the multiple first physical pages in thefirst logical volume, of the first virtual volume; and providing, by thecontroller, the host computer with the first logical volume.
 11. Thedata management method according to claim 10, wherein the storage systemis coupled to an external storage system comprising third storagedrives, and wherein the first logical volume is created using storagearea of the third storage drives.
 12. The data management methodaccording to claim 11, further comprising the steps of: migrating, bythe controller, data of the first virtual volume, stored in the thirdstorage drives, to the first storage drives; and providing, by thecontroller, the first virtual volume, which is created using storagearea of the first storage drives, to the host computer.
 13. The datamanagement method according to claim 10, wherein the same location islogical block address (LBA).
 14. The data management method according toclaim 10, wherein capacity of the first virtual volume is the same ascapacity of the first logical volume.